Static vs Dynamic Data Structures
Static: fixed size, contiguous memory, fast index-based access, e.g., primitive arrays
Dynamic: resizable, may use non-contiguous memory (e.g., linked lists) or amortized resizing (e.g., dynamic arrays)
Static structures avoid resizing overhead but risk overflow or wasted space
Dynamic structures adapt to workload but may incur pointer overhead or occasional resizing cost